home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-10-01 | 3.0 KB | 181 lines | [TEXT/MMCC] |
-
- /********************************************
- **** ACL-World
- ****
- **** dialogs.cp
- ****
- **** Created: 24 August 1994
- **** Modified: 25 August 1994
- **** Version: 0
- **** Compatible: C++, Mac System 7
- ****
- **** Description: Dialog methods
- ****
- *******************/
-
- #include "ACL-World.h"
-
-
- //*************************************
-
- void ACLWorld::introwarning(void)
- {
- DialogPtr dialog;
- short action;
-
- dialog = GetNewDialog(dlg_INTROWARNING,NULL,(WindowPtr)-1);
- if (dialog)
- {
- ModalDialog(NULL,&action);
- DisposDialog(dialog);
- }
- }
-
- //*************************************
-
- void ACLWorld::about(void)
- {
- DialogPtr dialog;
- short action;
-
- dialog = GetNewDialog(dlg_ABOUT,NULL,(WindowPtr)-1);
- if (dialog)
- {
- ModalDialog(NULL,&action);
- DisposDialog(dialog);
- }
- }
-
-
- //*************************************
-
- void ACLWorld::pleasewait(Boolean openw)
- {
- static DialogPtr wdialog;
-
- if (openw)
- {
- wdialog = GetNewDialog(dlg_PLEASEWAIT,NULL,(WindowPtr)-1);
- if (wdialog)
- {
- DrawDialog(wdialog);
- }
- }
- else if (wdialog) DisposDialog(wdialog);
- }
-
- //*************************************
-
- void ACLWorld::openbasedialog(void)
- {
- dialog = GetNewDialog(dlg_DIALOG,NULL,(WindowPtr)-1);
-
- ShowWindow(dialog);
- SetPort(dialog);
- updatebasedialog();
-
- }
-
- void ACLWorld::closebasedialog(void)
- {
- DisposDialog(dialog);
- }
-
- short ACLWorld::processbasedialog(char &key, Point &p)
- {
- EventRecord theEvent;
- WindowPtr whichWindow;
- DialogPtr whichDlog;
- short itemHit;
- short part;
-
-
- if (animbase) animbase->update();
-
- if (WaitNextEvent(everyEvent,&theEvent,0,NULL))
- {
- if(DialogSelect(&theEvent,&whichDlog,&itemHit))
- {
- switch(itemHit)
- {
- case 2: return DO_MENU;
- case 3: return DO_CONTINUE;
- }
- }
-
- switch(theEvent.what)
- {
- case updateEvt:
- whichWindow = (WindowPtr)theEvent.message;
- if (whichWindow==dialog)
- {
- updatebasedialog();
- if (animbase) animbase->updatewindow();
- }
- break;
-
- case keyUp:
- key = theEvent.message & charCodeMask;
- return DO_KEYUP;
-
- case keyDown:
- if (docmdkey(&theEvent)) return DO_QUIT;
-
- key = theEvent.message & charCodeMask;
- return DO_KEY;
-
- case mouseDown:
- part = FindWindow(theEvent.where,&whichWindow);
- if (whichWindow==dialog)
- {
- switch(part)
- {
- case inGoAway:
- if (TrackGoAway(whichWindow,theEvent.where)) return DO_QUIT;
- break;
-
- case inDrag:
- DragWindow(whichWindow,theEvent.where,&qd.screenBits.bounds);
- break;
-
- case inContent:
- p = theEvent.where;
- GlobalToLocal(&p);
- if (animbase)
- {
- p.h -= animbase->getbasex();
- p.v -= animbase->getbasey();
- }
- return DO_MOUSECLICK;
- }
- }
- else
- {
- switch(part)
- {
- case inMenuBar:
- if (domenubar(MenuSelect(theEvent.where))) return DO_QUIT;
- break;
- }
- }
-
- break;
- }
- }
-
- return DO_NOTHING;
- }
-
-
- void ACLWorld::updatebasedialog(void)
- {
- MoveTo(13,298);
- LineTo(480,298);
-
- MoveTo(13,227);
- LineTo(480,227);
- }
-
- //*************************************
-
-